package chapter03;

public class java01_FlowControl {
    public static void main(String[] args) {
        // TODO 流程控制
        // 所谓的流程控捌，其实就是计算机在执行代码时，对指令代码执行顺序的控制
        // Java种的流程控制主要分为3种：
        // TODO 1.顺序执行：代码出现的先后顺序以及语法的先后顺明
        // 变量在使用之前，必须声明并进行了初始化

        // TODO 2.分支执行
        // 1. TODO 可选分支：单分支执行
        System.out.println("第一步");
        System.out.println("第二步");
        // 判断：条件表达式的结果是否为true,如果为true,那么执行分支逻辑，如果为faLse,继续执行
        // 判断的语法使用if关键字，表示如果，在条件表达式前使用，如果结果为true,那么分支逻辑应该在后续的大括号中执行
        int i = 10;
        if (i == 10) {
            System.out.println("分支");
        }
        System.out.println("第三步");

        // 2. TODO 必选分支：双分支结构
        int i1 = 20;
        if (i1 == 10) {
            System.out.println("fenzhi1");
        } else {
            System.out.println("fenzhi2");
        }

        // 3. TODO 多分支结构 多重判断
        // if ... else if ... [else]
        int i2 = 10;
        if (i2 == 10) {
            System.out.println("1");
        } else if (i2 == 20){
            System.out.println("2");
        } else {
            System.out.println("3");
        }

        // 4. TODO 特殊分支结构  等值判断和范围判断
        System.out.println("one");
        System.out.println("two");
        int iii = 10;
        switch (iii) {
            case 10 :
                System.out.println("fen1");
                break;
            case 20 :
                System.out.println("fen2");
            case 30 :
                System.out.println("fen3");
            default:
                System.out.println("其他分支");
        }
        System.out.println("three");

        // 4. TODO  流程控制 分支结构 小练习
        int age = 40;
        if ( age < 7 ) {
            System.out.println("儿童");
        } else if ( age < 18 ) {
            System.out.println("少年");
        } else if ( age < 41 ) {
            System.out.println("青年");
        } else if ( age < 66 ) {
            System.out.println("中年");
        } else if ( age == 66 ){
            System.out.println("老年");
        }

        // TODO 3. 流程控制 循环执行 重复执行
        // 根据条件循环执行某段代码
        // java 中主要用于循环的语法有3个
        // 1. while : 有条件循环
        //  while ( 条件表达式 ) { 需要循环的代码 }
        //  基本的执行原理：while循环会判断条件表达式的结果是否为true
        //  如果为false,跳出循环结构
        //  如果为true,会执行大括号内的逻辑代码，代码执行完华后，会重新对条件表达式进行判惭

        // 2. do ... while
        // 至少执行一次
        // 语法执行原理和while语法基本相同，区别就在于循环代码是否至少执行一次。
        /*
        do {
            循环内容;
        } while ( 判断条件 );
        */

        // 3. for
        // 如果条件表达式返回结果为false,那么跳过循环语句，直接执行后续代码，如果返回结果为true,那么执行循环代码
        // 循环代码执行后，会重新进行条件表达式的判断，如果判断结果为true,会重复执行循环代码
        // 初始化表达式用于对条件表达式中使用到的变量进行初始化
        /*
        for ( 初始化表达式; 条件表达式; 更新表达式 ) {
            循环代码;
        }
         */

        // TODO 3.流程控制 - 重复执行 - 循环执行
        // break关键字直接会跳出循环，不再执行循环后续的操作
        // continue关键字直接会跳过当前循环，执行下一次循环

    }
}
